package com.example.array;

public class Leetcode189_RotateArray {
    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5, 6, 7};
        rotate(nums, 3);
        for (int i = 0; i < nums.length; i++) {
            System.out.print(nums[i] + ", ");
        }
    }

    /**
     * 每次向右旋转一步，
     * 循环k次即可得到结果
     * @param nums
     * @param k
     */
    public static void rotate(int[] nums, int k) {
        int temp, pre;
        // 旋转k次
        for (int i = 0; i < k; i++) {
            pre = nums[nums.length - 1];//获取当前数组最后一个元素的值，为了防止移动时覆盖掉原来的值，使用变量previous记录
            // 每次将数数组的数据向右旋转一位
            for (int j = 0; j < nums.length; j++) {//循环遍历数组中的元素
                temp = nums[j];//获取数组中第j个元素的值，为了防止移动时覆盖掉原来的值，使用变量temp记录
                nums[j] = pre;
                pre = temp;
            }
        }

    }
}
